home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee((((3333GGGG)))) ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee((((3333GGGG))))
-
-
-
- NNNNAAAAMMMMEEEE
- ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee - subdivide lines and polygons to a screen-space limit
-
- CCCC SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
- vvvvooooiiiidddd ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee((((mmmmooooddddeeee,,,, ppppaaaarrrraaaammmmssss))))
- lllloooonnnngggg mmmmooooddddeeee;;;;
- ffffllllooooaaaatttt ppppaaaarrrraaaammmmssss[[[[]]]];;;;
-
- PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
- _m_o_d_e Specify whether and how lines and polygons are to be subdivided.
- Options are:
-
- SSSSSSSS____OOOOFFFFFFFF: do not subdivide. (default)
-
- SSSSSSSS____DDDDEEEEPPPPTTTTHHHH: subdivide based on _z values in screen-coordinates.
-
- _p_a_r_a_m_s Expects an array that contains parameter specifications for the
- subdivision mode that has been selected.
-
- The values provided in the _p_a_r_a_m_s array are ignored when the
- mode is SSSSSSSS____OOOOFFFFFFFF....
-
- SSSSSSSS____DDDDEEEEPPPPTTTTHHHH expects three values in the _p_a_r_a_m_s array: _m_a_x_z,
- _m_i_n_s_i_z_e, and _m_a_x_s_i_z_e. _m_a_x_z specifies the distance, in screen-
- coordinates, between _z=_c_o_n_s_t_a_n_t subdivision planes. (Z-buffer
- screen coordinates are defined by llllsssseeeettttddddeeeepppptttthhhh.) _m_i_n_s_i_z_e and
- _m_a_x_s_i_z_e specify bounds, in units of pixels, of the screen size
- of the resulting subdivided polygons. Setting _m_a_x_z to 0.0
- eliminates screen-coordinate _z from consideration during the
- subdivision. Likewise, setting _m_i_n_s_i_z_e or _m_a_x_s_i_z_e to 0.0
- eliminates lower or upper bounds on screen size from
- consideration.
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- When ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee mode is not SSSSSSSS____OOOOFFFFFFFF, lines and polygons are subdivided
- until the specified criteria are met. Parameters are assigned to created
- vertices as though they have been interpolated in eye-coordinates, rather
- than in screen-coordinates. Thus effects that result from (incorrect)
- linear interpolation in screen-coordinates can be compensated for with
- ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee.
-
- Mode SSSSSSSS____DDDDEEEEPPPPTTTTHHHH slices polygons into strips whose edges have constant
- screen _z value. It divides lines into segments whose endpoint _z values
- differ by _m_a_x_z. This subdivision is done after lighting, so the newly
- created vertices are not lighted, but rather simply take color values as
- linear interpolants of the original vertices (in eye-coordinates). Both
- fog and texture mapping are done after the depth subdivision, so both
- benefit from its operation.
-
- Polygon slices created by SSSSSSSS____DDDDEEEEPPPPTTTTHHHH subdivision have edges whose _z values
- differ by _m_a_x_z. However, if the width of the resulting slices is less
- than _m_i_n_s_i_z_e, the slices are increased to have width equal to _m_i_n_s_i_z_e.
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee((((3333GGGG)))) ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee((((3333GGGG))))
-
-
-
- For example, if _m_a_x_s_i_z_e is set to 0.0 (i.e. defeated), a polygon that
- directly faces the viewer is not subdivided, because all vertices have
- the same _z value. As this polygon is rotated away from the viewer, it is
- sliced into strips whose edges are parallel to the axis of rotation. The
- number of strips increases as the rotation increases, until the strips
- reach a width (measured perpendicular to the axis of rotation) of
- _m_i_n_s_i_z_e. At this angle the number of slices is at its maximum. As the
- rotation is continued, the slice width remains constant, and the number
- of slices decreases, reaching zero as the polygon becomes perpendicular
- to the viewer.
-
- When _m_a_x_s_i_z_e is non-zero, the description above changes only in that
- large polygons that are nearly perpendicular to the viewer are subdivided
- into strips of width _m_a_x_s_i_z_e. Likewise, lines segments created by
- SSSSSSSS____DDDDEEEEPPPPTTTTHHHH subdivision are limited to a minimum length of _m_i_n_s_i_z_e, and a
- maximum length of _m_a_x_s_i_z_e.
-
- SSSSSSSS____DDDDEEEEPPPPTTTTHHHH subdivision improves the accuracy of texture mapping when non-
- orthographic projections are used, and improves the accuracy of fog
- calculations. It is not useful for lighting improvement.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- fogvertex, texbind, tevbind
-
- NNNNOOOOTTTTEEEESSSS
- ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee cannot be used while mmmmmmmmooooddddeeee is MMMMSSSSIIIINNNNGGGGLLLLEEEE.
-
- Only the VGX supports ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee. It has no effect on the VGXT and
- SkyWriter models because of their support for per-pixel perspective
- division.
-
- BBBBUUUUGGGGSSSS
- When the screen size of subdivided polygons is limited, either by _m_i_n_s_i_z_e
- or by _m_a_x_s_i_z_e, adjacent polygons can subdivide differently such that
- newly created vertices on their shared boundary do not coincide. In this
- case, some pixels at their shared boundary may not be scan converted by
- either polygon.
-
- Incorrect specification of either _m_a_x_z or _m_i_n_s_i_z_e can result in near-
- infinite polygon subdivision. To avoid the resulting poor graphics
- system response, IRIS-4D VGX models do not subdivide polygons whose
- SSSSSSSS____DDDDEEEEPPPPTTTTHHHH subdivision would result in more than 2000 slices.
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-